﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Coldairarrow.Entity.DTO
{
    /// <summary>
    /// 大屏项目进展信息类
    /// </summary>
    public class ProjectInfoDTO
    {
        /// <summary>
        /// 项目编号
        /// </summary>
        public String ProjectId { get; set; }

        /// <summary>
        /// 项目名称
        /// </summary>
        public String ProjectName { get; set; }

        /// <summary>
        /// 项目发货率
        /// </summary>
        public String ProjectDeliveryRatio { get; set; }

        /// <summary>
        /// 项目回货率
        /// </summary>
        public String ProjectReturnRatio { get; set; }

        /// <summary>
        /// 设计清单集合
        /// </summary>
        public List<DesignList> DesignLists { get; set; }

        /// <summary>
        /// 描述
        /// </summary>
        public string Describe { get; set; }

        /// <summary>
        /// 当前项目下分拣入库数据
        /// </summary>
        public List<SortingDTO> SortingList { get; set; }

        public List<PB_ProjectStateLogList> ProjectStateLogList { get; set; }
    }

    /// <summary>
    /// 设计清单类
    /// </summary>
    public class DesignList
    {

        /// <summary>
        /// 楼号id
        /// </summary>
        public string BuildingNumberID { get; set; }

        /// <summary>
        /// 项目ID
        /// </summary>
        public String ProjectId { get; set; }
        /// <summary>
        /// 设计清单编号
        /// </summary>
        public String DesignListId { get; set; }

        /// <summary>
        /// 设计清单名称
        /// </summary>
        public String DesignListName { get; set; }

        /// <summary>
        /// 设计清单创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 创建人名称
        /// </summary>
        public String CreatorName { get; set; }

        /// <summary>
        /// 设计清单对应楼号
        /// </summary>
        public String BuildingNumber { get; set; }

        /// <summary>
        /// 设计清单对应的发货通知信息
        /// </summary>
        public DeliveryNotice DeliveryNotice { get; set; }
        /// <summary>
        /// 巡检数据
        /// </summary>
        public InspectionInfo InspectionInfo { get; set; }
        /// <summary>
        /// 清单应发数量
        /// </summary>
        public Double? RealNum { get; set; }

        /// <summary>
        /// 楼栋发货率
        /// </summary>
        public String BuildingDeliveryRate { get; set; }

        /// <summary>
        /// 项目楼号回货信息
        /// </summary>
        public List<ReturnGood> ReturnGoods { get; set; }
    }

    /// <summary>
    /// 发货通知单类
    /// </summary>
    public class DeliveryNotice
    {
        /// <summary>
        /// 设计清单ID
        /// </summary>
        public string DesignId { get; set; }
        /// <summary>
        /// 发货通知单主表ID
        /// </summary>
        public String DeliveryNoticeId { get; set; }

        /// <summary>
        /// 发货通知单子表ID
        /// </summary>
        public string DeliveryNoticeItemId { get; set; }

        /// <summary>
        /// 发货通知创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 通知人姓名
        /// </summary>
        public String CreatorName { get; set; }

        /// <summary>
        /// 发货通知对应楼号
        /// </summary>
        public String BuildingNumber { get; set; }

        /// <summary>
        /// 对应发货通知的备货信息集合
        /// </summary>
        public List<PickUpInfo> PickUpInfos { get; set; }
    }
    
    /// <summary>
    /// 巡检记录类
    /// </summary>
    public class InspectionInfo
    {
        /// <summary>
        /// 巡检人
        /// </summary>
        public string InspectorName { get; set; }
        /// <summary>
        /// 巡检时间
        /// </summary>
        public DateTime? InspectionTime { get; set; }
        /// <summary>
        /// 巡检状态
        /// </summary>
        public string Status { get; set; }
        /// <summary>
        /// 巡检层数
        /// </summary>
        public string NumberLayers { get; set; }
        /// <summary>
        /// 楼号
        /// </summary>
        public string Buildingnumber { get; set; }
        /// <summary>
        /// 楼号id
        /// </summary>
        public string BuildingnumberId { get; set; }
    }


    /// <summary>
    /// 备货信息
    /// </summary>
    public class PickUpInfo
    {
        /// <summary>
        /// 备货单主表ID
        /// </summary>
        public string Id { get; set; }
        /// <summary>
        /// 发货通知单子表ID
        /// </summary>
        public string DeliveryNoticeItemId { get; set; }
        /// <summary>
        /// 备货时间
        /// </summary>
        public DateTime CreateTime { get; set; }

        /// <summary>
        /// 备货人姓名
        /// </summary>
        public String CreatorName { get; set; }

        /// <summary>
        /// 备货件数
        /// 累计计算结果
        /// </summary>
        public double? PickUpNumber { get; set; }

        /// <summary>
        /// 备货单对应的装车单信息
        /// </summary>
        public List<TransportBill> TransportBills { get; set; }

    }

    /// <summary>
    /// 装车单类
    /// </summary>
    public class TransportBill
    {
        /// <summary>
        /// 装车入场日期
        /// </summary>
        public DateTime? IntoTime { get; set; }

        /// <summary>
        /// 车牌号
        /// </summary>
        public String PlateNO { get; set; }

        /// <summary>
        /// 装车数量
        /// </summary>
        public double? LoadingCount { get; set; }

        /// <summary>
        /// 装车出厂时间
        /// </summary>
        public DateTime? DepartureTime { get; set; }

        /// <summary>
        /// 送货验收时间
        /// </summary>
        public DateTime? ReceivingTime { get; set; }

        /// <summary>
        /// 送货验收数量
        /// </summary>
        public double? ReceivingCount { get; set; }

        /// <summary>
        /// 备货单主表ID
        /// </summary>
        public String PickUpId { get; set; }

        /// <summary>
        /// 重量
        /// </summary>
        public double NetloadNumber { get; set; }
    }

    /// <summary>
    /// 项目楼号回货
    /// </summary>
    public class ReturnGood
    {

        /// <summary>
        /// 回货日期
        /// </summary>
        public DateTime ReturnTime { get; set; }

        /// <summary>
        /// 回货数量
        /// </summary>
        public String ReturnCount { get; set; }

        /// <summary>
        /// 回货人姓名
        /// </summary>
        public String ReturnName { get; set; }
        /// <summary>
        /// 楼号id
        /// </summary>
        public String BuildingId { get; set; }

    }

    /// <summary>
    /// 项目分拣信息
    /// </summary>
    public class SortingDTO 
    {
        /// <summary>
        /// 分拣入库日期
        /// </summary>
        public String SortingDate { get; set; }

        /// <summary>
        /// 分拣入库数量
        /// </summary>
        public String  SortingNums { get; set; }

        /// <summary>
        /// 分拣入库人姓名
        /// </summary>
        public String SortingName { get; set; }
        /// <summary>
        /// 项目id
        /// </summary>
        public String ProjectId { get; set; }
    }


    public class PB_ProjectStateLogList
    {

        public string Buildingnumber { get; set; }
        public string Id { get; set; }
        public string ProjectId { get; set; }
        public string Status { get; set; }
        public string ImageUrl { get; set; }
        public string Remarks { get; set; }
        public string CreateTime { get; set; }
        public string CreatorId { get; set; }
        public string Delete { get; set; }
        public string NumberLayers { get; set; }
        public string RealName { get; set; }
    }
}
